#include<stdio.h>
#include<stdlib.h>
#include<string.h>

typedef struct Stu
{
    char name[20];
    int age;
}stu;


// int cmp_int(const void* e1,const void* e2)
// {
//     return (*(int*)e1-*(int*)e2);
// }

// int cmp_float(const void* e1,const void* e2)
// {
//     return (*(float*)e1-*(float*)e2);
// }

// void test1()
// {
//     int arr[10]={9,8,7,6,5,4,3,2,1,0};
//     int sz = sizeof(arr)/sizeof(arr[0]);
//     qsort(arr,sz,sizeof(arr[0]),cmp_int);
//     for(int i =0;i<sz;i++)
//     {
//         printf("%d ",arr[i]);
//     }
// }


// void test2()
// {
//     float f[10]={9.0,5.0,6.0,2.0,7.0,6.0,3.0,4.0,7.0,2.0};
//     int sz = sizeof(f)/sizeof(f[0]);
//     qsort(f,sz,sizeof(f[0]),cmp_float);
//         for(int i =0;i<sz;i++)
//     {
//         printf("%.2f ",f[i]);
//     }
// }

int cmp_age(const void* e1,const void* e2)
{
    return ((stu*)e1)->age - ((stu*)e2)->age;
}

int cmp_name(const void* e1,const void* e2)
{
    return strcmp(((stu*)e1)->name , ((stu*)e2)->name);
}

void test3()
{
    stu a[3]={{"zhangsan",20},{"lisi",30},{"wangwu",10}};
    int sz = sizeof(a)/sizeof(a[0]);
    // qsort(a,sz,sizeof(a[0]),cmp_age);
    qsort(a,sz,sizeof(a[0]),cmp_name);
    for(int i=0;i<sz;i++)
    {
        printf("%s\n",a[i].name);
        printf("%d\n",a[i].age);
    }
}


int main()
{
    // test1();
    // printf("\n");
    // test2();
    test3();
    return 0;
}